www.gusucode.com > 基于simulink的数字信号调制与解调的仿真源码程序 > code/演示程序及子程序适用于matlab 7.0及以上版本/jfm1.m

    function jfm1()
M = 2; 
t = 0:0.001:0.999; 
m = randint(10, 1, M)';
df = 10;
g = 2*m(ceil(10*t+0.01))-1; 
s = cos(2*pi*(25+g*df).*t); 
f1=2*s.*cos(2*pi*35.*t);
f2=2*s.*cos(2*pi*15.*t);
Fs=80; 
fp=0.06*Fs/2; 
rp=0.01; 
fs=0.07*Fs/2; 
rs=0.1; 
f= [fp fs]; 
A=[1 0]; 
dev=[rp rs]; 
[n,f0,m0,W]=remezord(f,A,dev,Fs); 
b=remez(n,f0,m0,W);
Y=filter2(b,f1);Fs=80; 
fp=0.02*Fs/2; 
rp=0.01; 
fs=0.03*Fs/2; 
rs=0.1; 
f= [fp fs]; 
A=[1 0]; 
dev=[rp rs]; 
[n,f0,m0,W]=remezord(f,A,dev,Fs); 
bz=remez(n,f0,m0,W);

Z=filter2(bz,f2);
for i=1:length(t);
if (Z(i)>0.5)
    receive(i)=0;
else 
    receive(i)=1;
end
end
h=plot(t,s+9,'r',t,Y+6,'b',t,Z+3,'c',t, receive,'k');
set(h,'linewidth',2);
axis([0, 1, -.2, 10.2]);
xlabel('2FSK解调信号') ;
grid;